-- [debuff机制]

-- 施加debuff的持续时间只和武器相关，如不设定特殊值，取默认
-- 
-- 触发:
-- 成功触发debuff时，激活或刷新持续时间（math.max）
-- 如果这个debuff有层数，且层数未满，则仅层数+1，不刷新持续时间
-- 当时间耗尽时，层数-1或debuff消失
-- 
-- 抗性规则:
-- debuff抗性只加快时间的消耗速度，不影响其效果，在每次Update时结算
-- 抗性分为bool（直接免疫），mult（乘算），add（加算）
-- [优化] 如果存在直接免疫，在吃debuff时可以考虑给点提示
-- 
-- 虚弱:
-- debuff虚弱增加其持续时间（仅mult），缩短伤害触发间隔（仅触电，直接设定倍率即可），增加伤害（触电、点燃、中毒、重伤[带饰品加成]，仅mult）
-- 
-- 冰冻:
-- 寒冷满层触发冰冻
-- 冰冻下施加寒冷会刷新冰冻时间
-- 冰冻受击解除后，返还一层寒冷
-- 
-- 交互:
-- 点燃 -> 寒冷和冰冻抗性x2
-- 潮湿环境 -> 触电触发概率x2，点燃触发概率x0.5
-- 冰雪环境 -> 寒冷和冰冻抗性x0.5
-- 
-- 其他:
-- 层数 饰品加成直接设置

local data = {
	burn = {
		name = "点燃",
		desc = "持续受到高额燃烧伤害",
		starttime = 1.0,
		interval = 0.5,
		damage = 10,
		time = 5,
		-- 彩蛋
		cold_resist_add = 1,
		ice_resist_add = 4,
	},
	electric = {
		name = "触电",
		desc = "每隔一段时间受到轻微的电击伤害",
		interval = 2,
		damage = 5,
		time = 7.5,
	},
	poison = {
		name = "中毒",
		desc = "持续较长时间受到伤害，可叠加3层",
		stack = 3,
		stack_buffed = function(inst) --[[get specific relic]] return 0 end,
		dps = 2,
		time = 20,
	},
	cold = {
		name = "寒冷",
		desc = "移速和攻速下降，可叠加3层，叠满时触发冰冻",
		stack = 3,
		speeddown = 0.2,
		time = 10,
		def_extend = {"ice"},
	},
	ice = {
		name = "冰冻",
		desc = "无法攻击或移动，免疫攻击伤害，受击立刻解除（通过寒冷触发）",
		time = 10,
		trigger_by_cold_test = function(inst) return true end,
		def_extend = {"cold"},
	},
	hurt = {
		name = "重伤",
		desc = "受到的攻击伤害增加",
		time = 5
		damageup = nil -- by weapon
	},
	cursed = {
		name = "诅咒",
		desc = "攻击力下降，无法被治疗，受到的异常状态伤害增加，异常状态持续时间增加",
		time = 10, -- 10 * (1+50%) = 15
		time_mult = 1.5,
		damage_mult = 2.0,
		attackdown = 0.3,
		def_extend = {"debuff"},
	},
}
return data